SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS OFF
GO
CREATE PROCEDURE [dbo].[paagregarinscripcionconvocatoriamasiva] 
@Agente INT,
@Convocatoria INT,
@CargoGenerico INT,
@AsignaturaGenerica INT,
@Categoria INT,
@Localidad INT = NULL,
@Mensaje int output,
@mess varchar(1000) output
AS

DECLARE @Nivel INT
DECLARE @Ciclo INT
DECLARE @Modalidad INT
DECLARE @Organizacion INT 
DECLARE @Observaciones VARCHAR(100) 
DECLARE @TipoDeEspacioCurricular int


SET NOCOUNT ON
DECLARE @ERROR  varchar(300)
SET @Organizacion = null
SET @Nivel = 4
SET @Ciclo = null
SET @Modalidad = null
SET @Organizacion = null
SET @Observaciones = null
SET @TipoDeEspacioCurricular=12


SET @ERROR =''

select @TipodeEspacioCurricular=Tipo from tb_asignaturasgenericas where idAsignaturagenerica=@Asignaturagenerica

IF @TipodeEspacioCurricular = 12  --ASIGNATURA DEL VIEJO SECUNDARIO O POLIMODAL
BEGIN
SET @Nivel = 4
SET @Ciclo = 1
SET @Modalidad = 5
END
ELSE
IF @TipodeEspacioCurricular = 18 -- TRAYECTO TECNICO -  TTP
BEGIN
SET @Nivel = 4
SET @Ciclo = 1
SET @Modalidad = 7
END
ELSE
IF @TipodeEspacioCurricular = 21 -- ASIGNATURA DEL NUEVO SECUNDARIO
BEGIN
SET @Nivel = 4
SET @Ciclo = 1
SET @Modalidad = 5
END
ELSE
IF @TipodeEspacioCurricular = 22 -- ASIGNATURA DEL 3er  CICLO DE LA EGB
BEGIN
SET @Nivel = 4
SET @Ciclo = 2
SET @Modalidad = 5
END

--Unifico las Asignaturas que para Categorías Docentes Son equivalentes 

--If @AsignaturaGenerica in (2110,7110) and @Categoria = 1  set @AsignaturaGenerica=9182
--If @AsignaturaGenerica in (7115) and @Categoria = 1  set @AsignaturaGenerica=9181
If @AsignaturaGenerica in (7155) and @Categoria = 1  set @AsignaturaGenerica=9165
If @AsignaturaGenerica in (7520) and @Categoria = 1  set @AsignaturaGenerica=9178
If @AsignaturaGenerica in (7510) and @Categoria = 1  set @AsignaturaGenerica=9177
If @AsignaturaGenerica in (2505,7505) and @Categoria = 1  set @AsignaturaGenerica=9179
If @AsignaturaGenerica in (2700,7700) and @Categoria = 1  set @AsignaturaGenerica=9175
If @AsignaturaGenerica in (7750,2750) and @Categoria = 1  set @AsignaturaGenerica=9174
If @AsignaturaGenerica in (2800,7800,9189) and @Categoria = 1  set @AsignaturaGenerica=9180
If @AsignaturaGenerica in (7955) and @Categoria = 1  set @AsignaturaGenerica=9172
If @AsignaturaGenerica in (3020,8020) and @Categoria = 1  set @AsignaturaGenerica=9173
If @AsignaturaGenerica in (7560) and @Categoria = 1  set @AsignaturaGenerica=9176


--IF @AsignaturaGenerica in (3020,8020) and @Categoria <> 1and  EXISTS(SELECT * FROM tb_InscripcionesConvocatorias WHERE Agente = @agente AND CargoGenerico = @cargogenerico AND AsignaturaGenerica = 9173 AND Convocatoria = @convocatoria AND Localidad IN (@localidad) )
--		 select @ERROR= ' Ya se  ha  registrado una inscripción en la asignatura unificada 9173.'




-- SELECT @id = I.IdInscripcionConvocatoria, @cargo = I.CargoGenerico, @asignatura = I.AsignaturaGenerica, @agente = I.Agente, @convocatoria = I.Convocatoria, @localidad = I.Localidad FROM Inserted I
IF  (@Asignaturagenerica = 0  or  @CargoGenerico < 1000)
	 select @ERROR= 'Este módulo de inscripciones es sólo para nivel Medio/Polimodal. '
else
BEGIN
	IF @TipodeEspacioCurricular  not in (12,18,21,22)
		 select @ERROR= 'El Tipo de Espacio correspondiente a La Asignatura es INCORRECTO'
	else
/*	IF (@nivel=4 and  @ciclo =1 and @AsignaturaGenerica > 7000 and @AsignaturaGenerica < 9000)
		 select @ERROR= 'La Asignatura corresponde al 3er Ciclo.'
	else
	IF (@nivel=4 and @AsignaturaGenerica in (select idasignaturagenerica from tb_asignaturasgenericas where tipo=18) and @Modalidad <> 7)
		 select @ERROR= 'La Asignatura corresponde a modalidad TTP.'
	else
	IF (@nivel=4 and @AsignaturaGenerica in (select idasignaturagenerica from tb_asignaturasgenericas where tipo=12) and @Modalidad =7)
		 select @ERROR= 'La Asignatura corresponde a modalidad Común.'
	else*/
             IF @AsignaturaGenerica in (3020,8020) and @Categoria <> 1and  EXISTS(SELECT * FROM tb_InscripcionesConvocatorias WHERE Agente = @agente AND CargoGenerico = @cargogenerico AND AsignaturaGenerica = 9173 AND Convocatoria = @convocatoria AND Localidad IN (@localidad) )
		 select @ERROR= ' Ya se  ha  registrado una inscripción en la asignatura unificada 9173.'
	Else
--             IF @AsignaturaGenerica in (7115) and @Categoria <> 1and  EXISTS(SELECT * FROM tb_InscripcionesConvocatorias WHERE Agente = @agente AND CargoGenerico = @cargogenerico AND AsignaturaGenerica = 9181 AND Convocatoria = @convocatoria AND Localidad IN (@localidad) )
--		 select @ERROR= ' Ya se  ha  registrado una inscripción en la asignatura unificada 9181.'
--	Else
             IF @AsignaturaGenerica in (7155) and @Categoria <> 1and  EXISTS(SELECT * FROM tb_InscripcionesConvocatorias WHERE Agente = @agente AND CargoGenerico = @cargogenerico AND AsignaturaGenerica = 9165 AND Convocatoria = @convocatoria AND Localidad IN (@localidad) )
		 select @ERROR= ' Ya se  ha  registrado una inscripción en la asignatura unificada 9165.'
	Else
	  IF @AsignaturaGenerica in (7520) and @Categoria <> 1and  EXISTS(SELECT * FROM tb_InscripcionesConvocatorias WHERE Agente = @agente AND CargoGenerico = @cargogenerico AND AsignaturaGenerica = 9181 AND Convocatoria = @convocatoria AND Localidad IN (@localidad) )
		 select @ERROR= ' Ya se  ha  registrado una inscripción en la asignatura unificada 9181.'
	Else
             IF @AsignaturaGenerica in (7510) and @Categoria <> 1and  EXISTS(SELECT * FROM tb_InscripcionesConvocatorias WHERE Agente = @agente AND CargoGenerico = @cargogenerico AND AsignaturaGenerica = 9177 AND Convocatoria = @convocatoria AND Localidad IN (@localidad) )
		 select @ERROR= ' Ya se  ha  registrado una inscripción en la asignatura unificada 9177.'
	Else
	IF @AsignaturaGenerica in (2505,7505) and @Categoria <> 1and  EXISTS(SELECT * FROM tb_InscripcionesConvocatorias WHERE Agente = @agente AND CargoGenerico = @cargogenerico AND AsignaturaGenerica = 9179 AND Convocatoria = @convocatoria AND Localidad IN (@localidad) )
		 select @ERROR= ' Ya se  ha  registrado una inscripción en la asignatura unificada 9179.'
	Else
	IF @AsignaturaGenerica in (2700,7700) and @Categoria <> 1and  EXISTS(SELECT * FROM tb_InscripcionesConvocatorias WHERE Agente = @agente AND CargoGenerico = @cargogenerico AND AsignaturaGenerica = 9175 AND Convocatoria = @convocatoria AND Localidad IN (@localidad) )
		 select @ERROR= ' Ya se  ha  registrado una inscripción en la asignatura unificada 9175.'
	Else
	IF @AsignaturaGenerica in (2800,7800,9189) and @Categoria <> 1and  EXISTS(SELECT * FROM tb_InscripcionesConvocatorias WHERE Agente = @agente AND CargoGenerico = @cargogenerico AND AsignaturaGenerica = 9180 AND Convocatoria = @convocatoria AND Localidad IN (@localidad) )
		 select @ERROR= ' Ya se  ha  registrado una inscripción en la asignatura unificada 9180.'
	Else
            IF @AsignaturaGenerica in (7955) and @Categoria <> 1and  EXISTS(SELECT * FROM tb_InscripcionesConvocatorias WHERE Agente = @agente AND CargoGenerico = @cargogenerico AND AsignaturaGenerica = 9172 AND Convocatoria = @convocatoria AND Localidad IN (@localidad) )
		 select @ERROR= ' Ya se  ha  registrado una inscripción en la asignatura unificada 9172.'
	Else
            IF @AsignaturaGenerica in (7560) and @Categoria <> 1and  EXISTS(SELECT * FROM tb_InscripcionesConvocatorias WHERE Agente = @agente AND CargoGenerico = @cargogenerico AND AsignaturaGenerica = 9176 AND Convocatoria = @convocatoria AND Localidad IN (@localidad) )
		 select @ERROR= ' Ya se  ha  registrado una inscripción en la asignatura unificada 9176.'
	Else
	IF EXISTS(SELECT * FROM tb_InscripcionesConvocatorias WHERE Agente = @agente AND CargoGenerico = @cargogenerico AND AsignaturaGenerica = @asignaturagenerica AND Convocatoria = @convocatoria AND Localidad IN (@localidad) )
		 select @ERROR= 'Esta INSCRIPCION ya ha sido registrada.'
	ELSE  
	if (SELECT count(distinct localidad) FROM tb_InscripcionesConvocatorias WHERE Agente = @agente And convocatoria=@convocatoria )>=3  and (@Localidad not in (SELECT distinct localidad FROM tb_InscripcionesConvocatorias WHERE Agente = @agente And convocatoria=@convocatoria ))--and cargogenerico=@cargogenerico and asignaturagenerica=@asignaturagenerica
	             	  select @ERROR= 'Esta INSCRIPCION alcanzo el limite de 3 localidades .'
	else
	IF @Localidad <> NULL 
	BEGIN
	       if  EXISTS (SELECT * FROM tb_PosiblesVacantes WHERE convocatoria=@convocatoria and CargoGenerico = @cargogenerico AND AsignaturaGenerica = @asignaturagenerica AND Localidad = @localidad)
	              BEGIN
           		   	INSERT INTO tb_InscripcionesConvocatorias (Agente, Convocatoria, CargoGenerico, AsignaturaGenerica, TipoDeEspacioCurricular,Nivel, Ciclo, Modalidad, Organizacion, Localidad, Observaciones, NecesitaRecalcular, Estado,CategoriaDeTitulo)
			VALUES (@Agente, @Convocatoria, @CargoGenerico, @AsignaturaGenerica,@TipodeEspacioCurricular, @Nivel, @Ciclo, @Modalidad, @Organizacion, @Localidad, @Observaciones, 'N', 1,@Categoria)
		END
	       ELSE
	             select @ERROR= @ERROR+ 'La combinación CARGO: '+ CAST(@cargogenerico AS VARCHAR(8))  +'  ASIGNATURA: '+CAST(@asignaturagenerica AS VARCHAR(8))+ ' no existe en la Localidad: '+(SELECT SUBSTRING(LOCALIDAD,1,30) FROM TB_LOCALIDADES WHERE IDLOCALIDAD=@localidad) 
	END
END

IF @ERROR<>''
   BEGIN
            select  @mess=@error
            select @mensaje=1
   END
ELSE
   begin
          select   @mess='La inscripción se realizó satisfactoriamente.'
          select @mensaje=0
   end
GO
GRANT EXECUTE ON  [dbo].[paagregarinscripcionconvocatoriamasiva] TO [Juntas]
GO
